const util = require('util');

function Base() {
    this.name = 'base';
    this.base = 1991;
    this.sayHello = function() {
        console.log('Hello ' + this.name);
    };
}
Base.prototype.getName = function() {
    return this.name;
};
function Sub() {
    this.name = 'sub';
    //Base.call(this); call方法实现继承，只能继承Base构造函数内定义的属性和方法，
    //原型中定义的无法继承，并且sub instanceof Base 结果为false
}
util.inherits(Sub, Base);
//注意，Sub 仅仅继承了 Base 在原型中定义的函数，
//而构造函数内部创造的 base 属 性和 sayHello 函数都没有被 Sub 继承
let sub = new Sub();
let base = new Base();
console.log(sub.name);
console.log(sub.getName());
console.log(base.getName());
console.log(sub instanceof Base); //true

console.log(util.inspect(base,true));
console.log(util.isDate(new Date()));
